package client;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.List;
import java.util.Map;

import commons.FileAttributes;
import commons.OpenMode;

public interface MiniFileSystemClient {

	public void closeFile(String pathName, Map<String, Object> flags)
			throws IOException;

	public void createFile(String pathName, Map<String, Object> flags)
			throws IOException;

	public void deleteFile(String pathName) throws IOException;

	public FileAttributes getFileAttributes(String pathName,
			Map<String, Object> flags) throws IOException;

	public List<String> list() throws IOException;

	public void openFile(String pathName, OpenMode mode,
			Map<String, Object> flags) throws IOException;

	public int read(String pathName, ByteBuffer bytesToRead,
			Map<String, Object> flags) throws IOException;

	public int seek(String pathName, long position, Map<String, Object> flags)
			throws IOException;

	public void setFileAttributes(String pathName, String attributeName,
			String value, Map<String, Object> flags) throws IOException;

	public void setSize(String pathName, long position,
			Map<String, Object> flags) throws IOException;

	public long size(String pathName, Map<String, Object> flags)
			throws IOException;

	public int write(String pathName, ByteBuffer bytesToWrite,
			Map<String, Object> flags) throws IOException;
}
